/**
 * 
 */
package StudentAdminister;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * @author Jiang Zhiyan
 *
 * 2021年5月29日 下午9:56:12
 */
public class StudentManager {
     public static void main(String[] args) {
    	 
    	 ArrayList<Student> array= new ArrayList<>();
    	 while(true) {
    		 System.out.println("--------欢迎来到学生管理系统--------");
    			System.out.println("1 添加学生");
    			System.out.println("2 删除学生");
    			System.out.println("3 修改学生");
    			System.out.println("4 查看所有学生");
    			System.out.println("5 退出");
    			System.out.println("请输入你的选择：");
    			
//    			输入你的选择
    			Scanner sc = new Scanner(System.in);
    			int num=sc.nextInt();
    			
    			switch(num) {
    			case 1:
//    				System.out.println("添加学生");
    			       addStudent(array);
    			       break;
    			case 2:
//    				System.out.println("删除学生");
    				deleteStudent(array);
    			break;
    			case 3:
//    				System.out.println("修改学生");
    				updateStudent(array);
    			break;
    			case 4:
//    				System.out.println("查看所有学生");
    				findStudent(array);
    			break;
    			case 5:
    				System.out.println("退出");
//    			break;
    				System.exit(0);
    			}

    	 }
		     }
     
//     定义五个方法
//     判断学号是否重复
     public static boolean isSid(ArrayList<Student> array , String sid)
     {
    	boolean  flag=false;
    	for(int i=0;i<array.size();i++) {
    		 if(array.get(i).getSid().equals(sid)) {
    			 System.out.println("已有学号，请重新输入！");
    			 flag=true;
    			 break;
    		 } 
    	}
    	  return flag;
     }
//     定义添加学生的方法
     public static void addStudent(ArrayList<Student> array) {
    	 
//    	 从控制台输入数据
    	 Scanner sc = new Scanner(System.in);
    	 
    	 System.out.println("学号：");
    	 String sid= sc.nextLine();
    	 if(isSid(array,sid)==true) {
    		 System.out.println("您输入的学号已存在！");
    	 }else {
    	 System.out.println("姓名：");
    	 String name= sc.nextLine();
    	 System.out.println("年龄：");
    	 String age= sc.nextLine();
    	 System.out.println("居住地");
    	 String address= sc.nextLine();
    	 
//    	 创建Student对象，将数据存入Student
    	 Student s = new Student();
    	 s.setSid(sid);
    	 s.setName(name);
    	 s.setAge(age);
    	 s.setAddress(address);
    	 
//    	 将Student对象存入ArrayList集合
    	 array.add(s);
    	 
    	 System.out.println("添加成功！");
    	 }
     }
//     查看学生信息
     public static void findStudent(ArrayList<Student> array) {
    	 if(array.size()==0) {
    		 System.out.println("无信息，请先输入信息再查询");
    	 }
//    	 显示表头
    	   System.out.println("学号\t\t姓名\t年龄\t居住地");
    	   
    	   for(int i=0;i<array.size();i++) {
    		   Student s=array.get(i);
    		   System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"岁\t"+s.getAddress());
    	   }
       }
//     删除学生信息
      public static void deleteStudent(ArrayList<Student> array) {
       System.out.println("请输入要删除学生的学号：");
// 	  输入需要删除学生的学号
    	 Scanner sc = new Scanner(System.in);
    	 String sid = sc.nextLine();
    	 
//    	遍历array集合，找到该学号所在位置
    	int cnt=0;
        	for(int i=0;i<array.size();i++) {
        		Student s= array.get(i);
        		if(s.getSid().equals(sid))
        		{
        			cnt++;
        			array.remove(i);
        			break;
        		}
        	}
        	if(cnt==0) {
        		System.out.println("学号输入有误！");
        	}else {
        		System.out.println("删除成功！");
        	}

     }
//      修改学生信息
      public static void updateStudent(ArrayList<Student> array) {
    	 System.out.println("请输入要修改学生的学号：");
    	 Scanner sc = new Scanner (System.in);
    	 String sid = sc.nextLine();
    	 
    	 Student s = new Student();
    	 System.out.println("请输入新姓名：");
    	 String name= sc.nextLine();
    	 System.out.println("请输入新年龄：");
    	 String age= sc.nextLine();
    	 System.out.println("请输入新居住地：");
    	 String address = sc.nextLine();
    	 
    	 s.setSid(sid);
    	 s.setName(name);
    	 s.setAddress(address);
    	 s.setAge(age);
    	  
    	 for(int i=0;i<array.size();i++) {
    		 if(array.get(i).getSid().equals(sid)) {
//    			 修改Student中的值
    			 array.set(i, s);
    			 break;
    		 }
    	 }
    	 System.out.println("修改成功！");
     }
}
